Package Negocio

Source Code of Negocio.FachadaConcreta

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Negocio;

import Negocio_Dados.Funcionario;
import Negocio_Dados.Negocio2Dados;
import Negocio_Dados.Negocio2DadosConcreta;
import java.text.SimpleDateFormat;
import java.util.*;
import org.joda.time.Period;
import org.joda.time.chrono.GregorianChronology;

/**
*
* @author Brike
*/
public class FachadaConcreta implements FachadaNegocio{
    private Negocio2Dados mc;
    private List<CadastroListener> listenerCadastro;
    private List<EdicaoListener> listenerEdicao;
    private List<RemoveListener> listenerRemove;
    private List<EdicaoFuncListener> listenerEditFunc;
    private List<AddFuncListner> listenerAddFunc;
  
    private static FachadaConcreta instance;
    public static FachadaConcreta getInstance() throws NegocioException{
        if(instance == null)
            instance = new FachadaConcreta();
        return instance;
    }
   
    private FachadaConcreta() throws NegocioException, NegocioException{
        listenerCadastro = new ArrayList<>();
        listenerEdicao = new ArrayList<>();
        listenerRemove = new ArrayList<>();
        listenerEditFunc = new ArrayList<>();
        listenerAddFunc = new ArrayList<>();
        mc = Negocio2DadosConcreta.getInstance();
    }
   

    @Override
    public void addCadastroListener(CadastroListener model) {

        if(!listenerCadastro.contains(model)){
            listenerCadastro.add(model);
        }
    }

    @Override
    public void addEditListener(EdicaoListener model) {
        if(!listenerEdicao.contains(model)){
            listenerEdicao.add(model);
        }
    }
   
    @Override
    public void addRemoverListener(RemoveListener model) {
        if(!listenerRemove.contains(model)){
            listenerRemove.add(model);
        }
    }

    @Override
    public void GenerateTicket() throws NegocioException  {
        Ticket t = mc.GenerateTicket();
        eventoAdicaoTicket(t);
    }

    private void eventoAdicaoTicket(Ticket t) {
        CadastroEvent evt = new CadastroEvent(this, t);
        for(CadastroListener c : listenerCadastro){
            c.elementoAdicionado(evt);
        }
    }

    @Override
    public List<Ticket> getTickets() throws NegocioException{
        return mc.getTickets();
    }

    @Override
    public void liberaTicket(Ticket t) throws NegocioException{
        mc.LiberaTicket(t);
        DisparaRemocao(t);
    }
   
    private void DisparaRemocao(Ticket t){
        RemoveEvent evt = new RemoveEvent(this, t);
        for(RemoveListener l : listenerRemove)
            l.elementoRemovido(evt);
    }
   
    @Override
    public double ExecutaPagamento(Ticket t) throws NegocioException{
       
               
        Calendar cini = Calendar.getInstance();
        Calendar cfin = Calendar.getInstance();
       
        cini.setTime(t.getHoraEntrada());
        cfin.setTime(new Date());
       
        long milli_ini = cini.getTimeInMillis();
        long milli_fin = cfin.getTimeInMillis();
        double total = 0;
       
        int dia_entrada = cini.get(Calendar.DAY_OF_WEEK_IN_MONTH);
        int dia_saida = cini.get(Calendar.DAY_OF_WEEK_IN_MONTH);
        int hora_saida = cfin.get(Calendar.HOUR_OF_DAY);

        org.joda.time.Period p = new Period( milli_ini, milli_fin, GregorianChronology.getInstance() );
       
        System.out.println(dia_entrada+" "+ dia_saida+" "+hora_saida);
        if(dia_entrada <= dia_saida - 1 && hora_saida > 8){
            //paga 50R$
            int diarias = (dia_saida - dia_entrada) * 50;
            total = diarias * 50.0;
        }
        if(p.getMinutes() < 20 && p.getHours() == 0){
            //isento
            total = 0;
        }
        else if(p.getHours() < )
        {   //cobrar 3,5R$
            total = 3.5;
        }
        else {
            //50R$
            total = 10.0;
        }
        mc.pagou(t, total);
        return total;
    }

    @Override
    public double getTotalEstadiaDia(String s) throws NegocioException {
        return mc.getTotalEstadiaDia(s);
    }

    @Override
    public double getTotalEstadiaMes(String mes, String ano) throws NegocioException {
        return mc.getTotalEstadiaMes(mes,ano);
    }

    @Override
    public int getNroTicketsPagosDia(String s) throws NegocioException {
        return mc.getNroTicketsPagosDia(s);
    }

    @Override
    public int getNroTicketsPagosMes(String mes, String ano) throws NegocioException {
        return mc.getNroTicketsPagosMes(mes,ano);
    }

    @Override
    public int getNroTicketEspDia(String s) throws NegocioException {
        return mc.getNroTicketEspDia(s);
    }

    @Override
    public int getNroTicketEspMes(String mes, String ano) throws NegocioException {
        return mc.getNroTicketEspMes(mes,ano);
    }

    @Override
    public int getNroTicketEspFuncionario(String s) throws NegocioException {
        return mc.getNroTicketEspFuncionario(s);
    }

    @Override
    public boolean podeLiberar(String ticket_cartao) throws NegocioException {
        if(ticket_cartao.contains("-")){
            String aux[] = ticket_cartao.split("-");
            return mc.podeLiberar(aux[1], aux[0]);
        }
        return mc.podeLiberar(ticket_cartao);
    }

    @Override
    public void registraEntrada(String numCartao, String user) throws NegocioException {
        mc.registrarEntrada(numCartao, user);
    }

    @Override
    public String gerarFuncionario(String nome) throws NegocioException {
        String aux = mc.gerarFuncionario(nome);
        int id = Integer.parseInt(aux);
        Funcionario f = new Funcionario(id, nome);
        addFunc(f);
       
        return aux;
    }

    @Override
    public String getLastTicket() throws NegocioException {
        return mc.getLastTicket();
    }

    @Override
    public List<Funcionario> getFuncs() throws NegocioException{
        return mc.getFuncs();
    }

    @Override
    public void addCadFuncListener(AddFuncListner modelFunc) {
        if(!listenerAddFunc.contains(modelFunc)){
            listenerAddFunc.add(modelFunc);
        }
    }

    @Override
    public void addEditFuncListener(EdicaoFuncListener modelFunc) {
        if(!listenerEditFunc.contains(modelFunc)){
            listenerEditFunc.add(modelFunc);
        }
    }

    private void addFunc(Funcionario f) {
        FuncEvent evt = new FuncEvent(this, f);
        for( AddFuncListner l : listenerAddFunc){
            l.funcAdd(evt);
        }
    }

    @Override
    public double extravio(Ticket t) throws NegocioException{
        mc.pagou(t, 50.0);
        mc.LiberaTicket(t);
        DisparaRemocao(t);
        return 50.0;
    }

    @Override
    public void liberaSemPagamento(Ticket tthrows NegocioException{
        mc.pagou(t,0.0);
        mc.LiberaTicket(t);
        DisparaRemocao(t);
    }

    @Override
    public void createCartaoEsp(Funcionario funcionario) throws NegocioException {
        mc.createCartaoEsp(funcionario);
    }
   
}
/*
       
        System.out.println(cini.get(Calendar.MINUTE)+" "+ cini.get(Calendar.HOUR) +" "+ cini.get(Calendar.HOUR_OF_DAY));
        System.out.println(cfin.get(Calendar.MINUTE)+" "+ cfin.get(Calendar.HOUR) +" "+ cfin.get(Calendar.HOUR_OF_DAY));
        System.out.println(dif.get(Calendar.MINUTE)+" "+ dif.get(Calendar.HOUR) +" "+ dif.get(Calendar.HOUR_OF_DAY));
        System.out.println("----------------");
       
        long segundos = (t.getHoraEntrada().getTime() -
        (new Date()).getTime()) / 1000;
      int semanas = (int)Math.floor(segundos / 604800);
      segundos -= semanas * 604800;
      int dias = (int)Math.floor(segundos / 86400);
      segundos -= dias * 86400;
      int horas = (int)Math.floor(segundos / 3600);
      segundos -= horas * 3600;
      int minutos = (int)Math.floor(segundos / 60);
      segundos -= minutos * 60;
       
      System.out.println("As duas datas tem " +
        (horas +dias*24)+ " horas, " + minutos + " minutos e " +
        segundos + " segundos de diferença");
        */
TOP

Related Classes of Negocio.FachadaConcreta

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.